🚀 Caddy 网关:混合云 Homelab 的终极答案

头像
2025年12月02日

经过多次迭代,我构建了一套基于 Mac Mini (OrbStack) + VPS (FRP) + Cloudflare 的混合网络架构。通过 Caddy Gateway 作为统一入口,实现了流量的智能分层与高效管理。

# 网络架构
🚀 Caddy 网关:混合云 Homelab 的终极答案

在折腾家庭实验室(Homelab)的过程中,我们常面临一个两难选择:是把服务放在家里利用高性能硬件(但受限于家庭宽带和动态 IP),还是放在云端 VPS 上享受稳定网络(但受限于高昂的存储和算力成本)?

我的答案是:我全都要。

经过多次迭代,我构建了一套基于 Mac Mini (OrbStack) + VPS (FRP) + Cloudflare 的混合网络架构。通过 Caddy Gateway 作为统一入口,实现了流量的智能分层与高效管理。

🛠️ 核心硬件与环境

  • 主服务器 (Headless): Mac Mini (M芯片)
    • 运行环境:OrbStack (比 Docker Desktop 更轻量高效)
    • 负载:运行了 30+ 个 Docker 容器 (Caddy, Nuxt, Jellyfin, Umami 等)
  • 算力/游戏节点: Windows PC
    • 平时休眠,通过 Mac 上的 UpSnap 唤醒 (WoL),用于高负载任务或游戏。
  • 云端节点: ClowCloud VPS
    • 作为公网固定入口和 FRP 服务端。

🗺️ 网络拓扑全景图

这是我目前的网络架构图,清晰地展示了流量是如何从互联网进入我的内网服务的:

0ece3b8f-e0ed-46d4-ad47-563fd90f305d.png 三条“流量车道”的设计哲学

为了平衡速度、隐私和稳定性,我将流量分为了三类,分别走不同的路径:

1. VIP 稳定通道 (VPS + FRP)

  • 路径: User → CF DNS (灰色云) → VPS → FRP Tunnel → Caddy → App
  • 适用服务: 对外展示应用(博客/官网)
  • 设计思路:
    • 这些是对外展示的门面应用,稳定性第一。
    • 通过 VPS 中转,即使家里断网或 IP 变动,用户依然能解析到 VPS,配合 Caddy 的错误页或缓存,体验更好。
    • Cloudflare 在这里仅作 DNS 解析(不开代理),减少一层延迟。

2. 高速工具通道 (Cloudflare CDN + Origin Rules)

  • 路径: User → CF CDN (橙色云) → Router (:40443) → Caddy → App
  • 适用服务: Umami (统计), OpenList (清单), Gotify (推送)
  • 设计思路:
    • 这些是实用工具,需要带宽,但不想暴露家庭真实 IP。
    • 破局关键: 众所周知,家用宽带通常封锁 80/443 端口。我利用 Cloudflare Origin Rules 功能,将回源端口修改为高位端口(如 40443),从而绕过 ISP 限制,直接回源到家庭公网 IPv4。
    • 既享受了 CDN 加速和防护,又白嫖了家里的带宽。

3. 管理员隐私通道 (WireGuard VPN)

  • 路径: User → WireGuard → Home Network
  • 适用服务: Jellyfin (影音), MoviePilot, DPanel, Stirling PDF
  • 设计思路:
    • 涉及隐私、版权或无需公网访问的“重”服务,一律不暴露。
    • 通过 WireGuard 回家,就如同坐在局域网内一样,可以直接通过内网 IP 访问所有服务。

🗝️ 架构核心:Caddy Gateway

在之前的版本中,我使用的是 Nginx Proxy Manager (NPM)。但在当前架构中,Caddy 展现了无与伦比的优势:

  1. 统一入口:无论流量是来自 VPS 的 FRP 隧道,还是来自路由器的 40443 端口,最终都汇聚到 Caddy 容器。
  2. 自动 HTTPS:Caddy 自动为所有子域名申请和续期证书,省去了 NPM 经常遇到证书错误的烦恼。
  3. 配置简洁:配合 dpanel 或简单的 Caddyfile,即可完成反向代理配置。
  4. 原生支持高级功能:以往在 NPM 中实现 IP 限流身份鉴权,通常需要手写晦涩且易错的 Nginx 配置文件片段(Advanced Config)。而 Caddy 原生内置了 rate_limitbasic_authforward_auth 等指令,只需一行代码,就能轻松为内网服务加上访问频率限制或统一登录验证,既优雅又安全。

📝 总结

这套架构最大的优点是灵活。它没有把所有鸡蛋放在一个篮子里:

  • 想展示给世界的,走 VPS 穿透。
  • 自己常用的工具,走 Cloudflare 加速。
  • 私人的数据,关起门来走 VPN。

如果你也有一台闲置的 Mac 或 PC,不妨尝试用 OrbStack + Caddy 搭建一套类似的混合云 Homelab,体验数据掌握在自己手中的乐趣。